package com.jade.zsy.base.vo;

import com.jade.bss.base.utils.EntityVo;
import com.jade.bss.base.utils.RegValidation;
import com.jade.zsy.base.common.StatusConstant;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.hibernate.validator.constraints.Length;
import org.hibernate.validator.constraints.NotBlank;

import javax.validation.constraints.Pattern;

/**
 * 组织机构
 * User: jinya
 * Date: 2017/5/31
 * Time: 11:08
 * TEL :17701640710   MAIL:2009_jinya@163.com
 * To change this template use File | Settings | File Templates.
 * /**
 5      * Bean Validation 中内置的 constraint
 6      * @Null   被注释的元素必须为 null
 7      * @NotNull    被注释的元素必须不为 null
 8      * @AssertTrue     被注释的元素必须为 true
 9      * @AssertFalse    被注释的元素必须为 false
 10      * @Min(value)     被注释的元素必须是一个数字，其值必须大于等于指定的最小值
 11      * @Max(value)     被注释的元素必须是一个数字，其值必须小于等于指定的最大值
 12      * @DecimalMin(value)  被注释的元素必须是一个数字，其值必须大于等于指定的最小值
 13      * @DecimalMax(value)  被注释的元素必须是一个数字，其值必须小于等于指定的最大值
 14      * @Size(max=, min=)   被注释的元素的大小必须在指定的范围内
 15      * @Digits (integer, fraction)     被注释的元素必须是一个数字，其值必须在可接受的范围内
 16      * @Past   被注释的元素必须是一个过去的日期
 17      * @Future     被注释的元素必须是一个将来的日期
 18      * @Pattern(regex=,flag=)  被注释的元素必须符合指定的正则表达式
 19      * Hibernate Validator 附加的 constraint
 20      * @NotBlank(message =)   验证字符串非null，且长度必须大于0
 21      * @Email  被注释的元素必须是电子邮箱地址
 22      * @Length(min=,max=)  被注释的字符串的大小必须在指定的范围内
 23      * @NotEmpty   被注释的字符串的必须非空
 24      * @Range(min=,max=,message=)  被注释的元素必须在合适的范围内
 25
 */
@Data
@ApiModel(value ="组织机构")
public class OrgVo extends EntityVo {
    @ApiModelProperty(name = "上级编号")
    private long parentId=0; /** 上级编号 **/
    @ApiModelProperty(name = "上级部门")
    private String parentDesc; /** 上级编号 **/
    @ApiModelProperty(name = "编号",required = true)
    private String code; /** 编号 **/
    @NotBlank(message="名称不能为空")
    @Length(max=50, min=1, message="最大不超过50")
    @ApiModelProperty(name = "名称",required = true)
    private String name; /** 名称 **/
    @Length(max=50, message="最大不超过50")
    @ApiModelProperty(name = "负责人")
    private String principalName; /** 部门负责人 **/
    @Length(max=50,message="最大不超过50")
    @ApiModelProperty(name = "电话")
    @Pattern(regexp= RegValidation.PHONE, message=RegValidation.PHONE_MSG)
    private String principalTel; /** 负责人电话 **/

    @Length(max=50,message="最大不超过50")
    @Pattern(regexp= RegValidation.EMAIL, message=RegValidation.EMAIL_MSG)
    @ApiModelProperty(name = "邮箱")
    private String principalEmail; /** 负责人邮箱 **/

    @Pattern(regexp= RegValidation.MOBILE, message=RegValidation.MOBILE_MSG)
    @ApiModelProperty(name = "手机")
    private String principalPhone; /** 负责人手机 **/

    @Length(max=50,message="最大不超过50")
    @ApiModelProperty(name = "传真")
    private String principalFax; /** 负责人传真 **/

    @ApiModelProperty(name = "状态")  /** 状态 **/
    private int status= StatusConstant.RECORD_INIT;
    @ApiModelProperty (value = "状态")
    private String statusDesc; /** 状态  0：正常  9：已停用 **/

    public String getParentDesc() {
        return parentDesc;
    }

    public void setParentDesc(String parentDesc) {
        this.parentDesc = parentDesc;
    }

    public long getParentId() {
        return parentId;
    }

    public void setParentId(long parentId) {
        this.parentId = parentId;
    }

    public String getCode() {
        return code;
    }

    public void setCode(String code) {
        this.code = code;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getPrincipalName() {
        return principalName;
    }

    public void setPrincipalName(String principalName) {
        this.principalName = principalName;
    }

    public String getPrincipalTel() {
        return principalTel;
    }

    public void setPrincipalTel(String principalTel) {
        this.principalTel = principalTel;
    }

    public String getPrincipalEmail() {
        return principalEmail;
    }

    public void setPrincipalEmail(String principalEmail) {
        this.principalEmail = principalEmail;
    }

    public String getPrincipalPhone() {
        return principalPhone;
    }

    public void setPrincipalPhone(String principalPhone) {
        this.principalPhone = principalPhone;
    }

    public String getPrincipalFax() {
        return principalFax;
    }

    public void setPrincipalFax(String principalFax) {
        this.principalFax = principalFax;
    }

    public int getStatus() {
        return status;
    }

    public void setStatus(int status) {
        this.status = status;
    }

    public String getStatusDesc() {
        return StatusConstant.getDesc(status);
    }
}
